package com.oop2;

/**
 * 接口
 * 1.接口中的方法都是抽象方法
 * 2.其实有可以实现的方法,需要用default修饰。
 * 3.接口中定义的成员变量默认为常量
 * 4.接口中的成员变量默认为：public static final       成员方法默认为：public abstract
 * 5.接口和类之间用：implements
 * 6.接口是为了解决Java中 单继承的问题，可以实现多个接口
 * 7.只要这个类实现了该接口，那就可以实现向上转型
 */
interface Shape{
    /*public static final*/ int a = 10;
    /*public abstract*/  void draw();
   /* default void func1() {
        System.out.println("func1");
    }*/
}

class Cycle implements Shape{
    @Override
    public void draw() {
        System.out.println("画一个圆圈");
    }
}
public class TextInterface {
    public static void shapeMap(Shape shape){
        shape.draw();
    }
    public static void main(String[] args) {
        Shape shape1 = new Cycle();
        shapeMap(shape1);
    }
}

